<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>Praise from log4j users</title>
</head>

<body bgcolor="white">
<h2>Praise from log4j users</h2>

<hr><blockquote>
Log4J was named as a finalist in the "Most Useful New or Revised Java API/Technology" 
category, and Tomcat 3.2 was named as a finalist in the "Most Innovative Java Product" category.
</blockquote>
<p align=right><a href="http://www.javaworld.com" target="_blank">JavaWorld</a>,  April 2001

<hr><blockquote>
<p>Log4j is an incredibly well designed and functional logging tool. I
caught the religion last summer and with every project I work on, most
everyone agrees it's a must know/have tool. Previously I was using
another Java logging library developed internally within my company
which I liked. I had no desire to learn another but did so for the
sake of due diligence. Log4j has the following features which set it
apart from others I have seen.

<p><b>Highly configurable</b> - the ability to configure the
properties of your loggers (called Categories in log4j) from within a
property file is indispensible. This allows you to change the
characteristics of your logging without changing code. You can change
the logging level, the format of the output and the output targets
very easily.  One can also use XML files (though I haven't).

<p><b>Unobtrusive</b> - I'm finishing a project where we started using another
logging tool. The log statements were clumsily long and required using
predefined constants that were hard to remember. When writing the
initial code, "System.out.println" was so much easier to type that
people did this for tracing with the best of intentions to place
legitimate logging in later. You know the story. It never
happened. Log4j statements are shorter than "System.out.println"
statements. This encourages people to actually use it rather than
simply agreeing to.

<p><b>Easy configuration</b> - With just one statement, log4j will
configure itself with a set of defaults that are useful until you get
around to actually writing your property file, XML file or
whatever. Like the point just made before, this allows log4j to be
used at the outset of coding rather than having to wait because you
haven't considered how you wish logging to be configured. The
application code itself does not have to know how logging will be
configured. 

<p><b>Performance Concerns</b> - Since Java does not use pre-processor
macros, most Java tracing is always compiled into the code. That means
that the decision to compile is made at runtime.  There are times when
performance is so paramount that even checking whether to log is a
concern. There are other extremes where other delays make this
insignificant so that the performance is easily sacrificed for the
increased amount of information logged (such as method name, class
name and line number in source code). The log4j javadoc documentation
explains which information elements are quickly logged and which may
compromise performance. It also includes benchmarks that demonstrate
how fast certain statements are logged for a few sample machine
configurations.

<p><b>Hierarchical Categories</b> - This is highly useful in component
based development. Each component has its own set of logging
categories. When individually tested, the properties of these
categories may be set however the developer wishes. When combined with
other components, the categories inherit the properties determined by
the integrator of the components. One can selectively elevate logging
priorities on one component without affecting the other
components. This is useful when you need a detailed trace from just a
single component without crowding the trace file with messages from
other components. All this can be done with property files - no change
in the code is required.

<p><b>Easily specified output format</b> - Some Java and OO purist
disagree with me on this, but allowing one to use printf-style output
format specification is powerful, convenient and compact. Log4j
provides a Layout class with this capability. Of course, for those who
wish, you may implement the Layout interface yourself with something
"more OO". Naturally, the printf-style pattern can be specified in a
property file.

<p><b>Customization</b> - Like other loggers, log4j is interface-based
making it possible to extend. Log4j supplies useful implementations
that are extended easily without having to implement the interface
from scratch.
</blockquote>

<p align=right>Paul Glezen (pglezen at atdial.net), December 3rd, 2000

<hr><blockquote>
This Java package is probably one of the best and most reliable packages
around, and really helps development and maintenance of quality software.
Thanks to all contributors who have made such a good work.
</blockquote>

<p align=right>Denis Balazuc (denis.balazuc at trader.com), December 8th,  2000

<hr><blockquote> This is just a quick note of thanks for publishing
your article in Javaworld.  Log4j is really easy to use.  While I was
initially skeptical of the idea, code like this makes me a believer in
the concept of Open Source.  
</blockquote>

<p align=right>Paul Hyndman (PaulHyndman at mynd.com),  November 29th, 2000

<hr><blockquote>
I just recently became aware of log4j and am just now begining to use
it. I want to thank you and the rest of the log4j development team for
making this functionality available. You are providing an outstanding
service to the development community. Please pass my regards on to the
other team members.
</blockquote>

<p align=right>Rich Coco (racoco at celoxnetworks.com), November 16th, 2000



<hr><blockquote>

Just thought I'd let you know that I am using your log4j as a part of
an e-commerce application (<a
href="http://www.consumerd.com">www.consumerd.com</a>).  I am using
the XML configuration classes and have to say that I am most
impressed.
</blockquote>

<p align=right>Richard King (Richard.King at capgemini.co.uk), October 25th, 2000 

<hr><blockquote>

You should see what we've used log4j for at work... I put together
this Servlet that can interpret SOAP messages and invoke little
"handlers".  Logging is pervasive through out the system, and the
handler developers can "create" their own Categories dynamically using
the getInstance method of Category.  

<p>It's funny when I get an email from someone at work who's using the
toolkit with a "it didn't work" question, and I ask them to check out
the log... due to the coolness of log4j, they can track down their
mistake immediately.

</blockquote>
<p align=right>Christopher Taylor (cstaylor at pacbell.net), September 2nd, 2000

<hr><blockquote> 
I am using log4j for a project I am currently working on. The
simplicity and ease with which new appenders can be written makes it
one of the best logging systems I have ever used.
</blockquote>

<p  align=right> Manish Balsara (manishb at aumsoft.com) August 28th, 2000

<hr><blockquote>
Thank you for writing this incredibly effective piece of software. You
have made my and my team's lives much easier.
</blockquote>

<p align=right>Guy Nirpaz, Java Architect (guyn at tantian.com) August
14th, 2000

<hr><blockquote>
Thank you <em>so</em> much for developing such a
sleek package.  I think it's going to be a part of many of my projects in
the future :)
</blockquote>

<p align=right>Alice Nakajima (alice.t.nakajima at saic.com) May 10th,
2000


<hr><blockquote>
Thank you very much for your great work on log4j, which is really
powerful and flexible logging system.  Log4j is now playing an
important role in our project.
</blockquote>

<p align=right> Zeng Qiang (zeng.qiang at europeloan.com) April 26th, 2000

<hr>
<blockquote> Thank you and your team giving us a excellent tool to
help us to develop our Java applications.  After evaluation, our team
is ready to use log4j as our eCare product's diagnostic strategy.
</blockquote> <p align=right>Jianbo Wang (jiwang at Daleen.com) April
25th, 2000

<hr>
<blockquote> <!-- OK -->
Was trying to use the log4j tracer ... great job, by the way !

<p>Actually I'm evaluating the log4j package for use in our commercial
projects. We have our own tracer package which is by far less
powerfull and less configurable than yours.
</blockquote> 
<p align=right>Joerg Palmer (Joerg.Palmer at Compart.net) April 14th, 2000


<hr>
<blockquote><!-- OK -->
Hooray, log4j! It's now all over my current project, and my colleagues
were pleasantly surprised at the ease of debugging. I gave them my
jarfile, it didn't work, I said "oh, just change this configuration
file" and <em>presto</em>, logging to a file. They're happy.
</blockquote>
<p align=right>Nelson Minar CTO, Popular Power, Inc. (nelson at popularpower.com) April 14th, 2000

<hr>
<blockquote><!-- OK -->
I really dig your log4j package... just started using it on our linux
and os390 boxes for the java servlets we run in websphere.  Still
trying to get the hang of it properly, but what I do have working is
working great.  (Not to mention your makefile tutorial which has
improved my life significantly!  :-)
</blockquote>
<p align=right>Anthony (ant at sanlam.co.za) April 13th, 2000


<hr><!-- OK -->
<blockquote>
Thanks for providing log4j: it's a very useful package. 
</blockquote>
<p align=right>Andrew Harris (Andrew.Harris at capgemini.co.uk) April 10th, 2000

<hr>
<blockquote><!-- OK -->
I just started using log4j v.0.8.1. It is quite what I was looking for.
<p>So here is my <b>"THANK  YOU"</b> to all the contributors.
I think I'll join the club.
</blockquote>
<p align=right>Avy Sharell (asharell at club-internet.fr) March 8th, 2000


<hr>
<blockquote><!-- OK -->
I just wanted to thank you for log4j which is a great piece of software!

<p>We are using it in the FREE e-democracy project
<a href="http://www.thecouch.org/free/">http://www.thecouch.org/free/</a> to provide an effective security audit
trail in our electronic voting software.
</blockquote>
<p align=right> Jason Kitcat (jeep at thecouch.org) March 29th, 2000 


<hr>
<blockquote>
Thanks for making log4j available.
I like the changes in v0.8 and am using it in all my java projects.
</blockquote>
<p align=right>Steven Marcus (srnm at awaretechnologies.com) February 19th, 2000

<hr>
<blockquote><!-- OK -->
First congratulation for your great job on the Log mechanism log4j,
it's really valuable.
</blockquote>
<p align=right>Sebastien Sahuc (ssahuc at imediation.com) January 4th, 2000


<hr> <blockquote> Just a few remarks to your log4j Logging-Tool. First
of all, in my opinion, it is exactly what many Java programmers need:
A small but very useful tool complementing the debugger ;-) The logs
help me to debug results generated on a distant client.  <p
align=right>Jens Uwe Pipka (jens.pipka at gmx.de) October 25th, 1999

<hr>
</body> </html>
